/**
 * 
 * 仿照ruoyi-yi.js 定制项目内的接口请求、交互、工具方法
 * 
 * 
 */
(function ($) {
    $.extend({
        operate:{
            submit: function(url, type, dataType, data, callback) {
                var config = {
                    url: url,
                    type: type,
                    dataType: dataType,
                    data: data,
                    success: function(result) {
                        if (typeof callback == "function") {
                            callback(result);
						}
						// 操作反馈
                        $.operate.ajaxSuccess(result)
                    }
                };
                $.ajax(config)
            },
            // post请求传输
            post: function(url, data, callback) {
                $.operate.submit(url, "post", "json", data, callback);
            },
            // get请求传输
            get: function(url, callback) {
                $.operate.submit(url, "get", "json", "", callback);
			},
			// 业务用会有用户操作不产生反馈的场景，只产生回调
            silent:{
                submit: function(url, type, dataType, data, callback) {
                    var config = {
                        url: url,
                        type: type,
                        dataType: dataType,
                        data: data,
                        beforeSend: function () {
                        },
                        success: function(result) {
                            if (typeof callback == "function") {
                                callback(result);
                            }
                        }
                    };
                    $.ajax(config)
                },
                // post请求传输
                post: function(url, data, callback) {
                    $.operate.silent.submit(url, "post", "json", data, callback);
                },
                // get请求传输
                get: function(url, callback) {
                    $.operate.silent.submit(url, "get", "json", "", callback);
				},
				// 如需要业务反馈 可copy一份到 operate 下
                upload:function (url, data, callback) {
                    var config = {
                        url: url,
                        type: "post",
                        dataType: "json",
                        data: data,
                        cache : false,// 上传文件无需缓存
                        processData : false,// 用于对data参数进行序列化处理 这里必须false
                        contentType : false, // 必须
                        success: function(result) {
                            if (typeof callback == "function") {
                                callback(result);
                            }
                        }
                    };
                    $.ajax(config)
                },
            },
            ajaxSuccess:function (result) {
                if (result.code == web_status.SUCCESS) {
                }  else if (result.code == web_status.WARNING) {
                    $.modal.msg(result.msg);
                }  else {
                    $.modal.msg(result.msg);
                }
            },
		},
		// 接口地址
        URL:{
            demo:"/demo",
        },
        validate:{
            // 表单验证
            form: function (formId) {
                formId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
                return $("#" + formId).validate().form();
            },
        },
        form:{
            reset:function (formId) {
                formId = $.common.isEmpty(formId) ? $('form').attr('id') : formId;
                $("#" + formId)[0].reset();
            }
		},
		// 交互
        modal:{
            msg: function(content) {
                top.layer.msg(content);
            },
            // 确认窗体
            confirm: function (content, callBack) {
                top.layer.confirm(content, {
                    icon: 3,
                    title: "系统提示",
                    btn: ['确认', '取消']
                }, function (index) {
                    $.modal.close(index);
                    callBack(true);
                });
            },
            // 打开遮罩层
            loading: function () {
                layer.load(1,{shade:0.3})
            },
            // 关闭窗体
            close: function (index) {
                top.layer.close(index);
            },
            closeAll: function () {
                top.layer.closeAll();
            },
        },
        common:{
            // 判断字符串是否为空
            isEmpty: function (value) {
                if (value == null || this.trim(value) == "") {
                    return true;
                }
                return false;
            },
            // 判断一个字符串是否为非空串
            isNotEmpty: function (value) {
                return !$.common.isEmpty(value);
            },
            // 空格截取
            trim: function (value) {
                if (value == null) {
                    return "";
                }
                return value.toString().replace(/(^\s*)|(\s*$)|\r|\n/g, "");
            },
        },
        login:{
            login:function () {
                window.location.href = $.URL.login;
            }
        }

    })
})(jQuery)

/** 消息状态码 */
web_status = {
    SUCCESS: 0,
    FAIL: 500,
    WARNING: 301
};